package com.ftcs.service;

import com.ftcs.entity.Permission;
import com.ftcs.entity.Role;
import com.ftcs.entity.User;
import com.ftcs.entity.UserRole;

import java.util.List;


public interface SystemService {
    List<User> getAllUsers();

    List<User> getPageUsers(int current, int pageSize);

    /**
     * 根据用户id查找用户
     *
     * @param id
     * @return
     */
    User getUserById(int id);

    /**
     * 根据用户名查找用户
     *
     * @return
     */
    User getUserByUserName(String userName);

    List<Role> getRoles();

    void deleteUser(int uid);

    void addUser(User user, String[] rolenames);

    /**
     * 只添加用户，无角色添加
     *
     * @param user
     */
    void addUser(User user);

    void updateUser(int uid, User user, String[] rolenames);

    List<Role> getpageRoleinfo(int current, int pageSize);

    List<Role> getRoleinfo();

    List<Permission> getPermisions();

    /**
     * 使用用户id获取角色id列表
     *
     * @param userid
     * @return
     */
    List<UserRole> listRolesByUserid(int userid);

    void addrole(Role role, String[] permissionnames);

    void deleteRole(int rid);

    Role getRoleById(int rid);

    /**
     * 删除rid的角色下的所有权利
     *
     * @param rid
     */
    void deleteRolePermission(int rid);

    /**
     * 把所有的权利permissionnames添加到rid的角色下
     *
     * @param rid
     * @param permissionnames
     */
    void updateRole(int rid, String[] permissionnames);

    List<Permission> getPagePermisions(int pagenum, int pagesize);

    void addPermission(String permissionname);

    void deletepermission(int pid);

    //    int getUidByUsername(String username);

    /**
     * 验证当前用户是否有处理的权限
     *
     * @param username
     * @param perssionName
     * @return
     */
    boolean validatePerssion(String username, String perssionName);

    /**
     * 验证当前用户角色是否匹配
     *
     * @param username
     * @param roleName
     * @return
     */
    boolean validateRole(String username, String roleName);


}
